#include <mips/regdef.h>
#include <sys/syscall.h>

	.text
	.align 	2
	.global main
	.ent 	main

main:
	.frame	$fp,40,ra

	.set noreorder
	.cpload	t9
	.set reorder

	subu	sp,sp,40

	# Guardo los registros
	.cprestore 24
	sw	ra,32(sp)
	sw	$fp,28(sp)
	move	$fp,sp

	# length de left buffer:
	la		a0, str_input
	jal		length
	sw      v0, 16($fp)	// length buffer resultado
	
	# malloc del buffer resultado
	lw		a0,	16($fp)
	jal 	mymalloc
	sw      v0, 20($fp) // buffer resultado
	
	# llamo a mergesort.
	la	a0, str_input	// input
	lw	a1, 20($fp)		// resultado
	jal	mergesort
	
	# free del buffer resutlado
	lw		a0,	20($fp)
	jal 	myfree		
	
main_return:
	# destruyo el stack
	move	sp, $fp
	lw	$fp, 28(sp)
	lw	ra,  32(sp)
	addu	sp, sp, 40

	j	ra
	.end	main
	
	.rdata
str_input:	.asciiz	"juanma"
